  10 :RETURN ;CLEAR ;FOR Z=1TO 26;@(Z)=0;NEXT Z
  20 NT=0;BC=RND (32)×8;FC=BC+4+RND (32)×8
  40 PRINT "1-UPDATE
  50 PRINT "2-DECODE
  60 PRINT "3-LOAD MESSAGE
  70 PRINT "4-PRINT CODE
  80 PRINT "5-CODE BREAKER
  85 FOR Z=1TO 2000
  90 IF &(23)=8GOTO 1000
 100 IF &(22)=8GOTO 2000
 110 IF &(21)=8GOTO 5000
 120 IF &(23)=4GOTO 7000
 125 IF &(22)=4GOTO 8000
 130 NEXT Z;BC=0;FC=0
 140 IF KPGOTO 20
1000 PRINT "CODE LETTER? ",;C=KP;TV=C;PRINT 
1010 IF C="RETURN "GOTO 20
1020 PRINT "LETTER? ",;B=KP;TV=B;PRINT 
1030 @(C-64)=B;GOTO 1000
2000 GOSUB 6000;FOR Z=27TO A
2030 FOR M=1TO 26
2040 IF @(Z)-64=M TV=@(M);GOTO 2050
2045 NEXT M;TV=@(Z)
2050 NEXT Z;PRINT 
2060 GOTO 1000
5000 A=27;CLEAR 
5010 @(A)=KP;IF @(A)=31TV=31;A=A-1;GOTO 5010
5020 IF @(A)="RETURN "A=A-1;PRINT ;GOTO 20
5030 TV=@(A)
5040 A=A+1
5050 GOTO 5010
6000 CLEAR ;FOR Z=27TO A;TV=@(Z);NEXT Z
6010 PRINT ;RETURN 
7000 FOR Z=1TO 26;TV=Z+64;NEXT Z
7010 FOR Z=1TO 26;TV=@(Z);NEXT Z;PRINT 
7020 GOTO 1000
8000 CLEAR ;PRINT "COMPUTING!
8005 FOR Z=375TO 400;@(Z)=0;NEXT Z
8010 GOSUB 8500;GOSUB 8600;@(E-374)=69
8015 GOSUB 9000
8020 GOSUB 8600;@(E-374)=84
8025 GOSUB 9000
8030 GOSUB 8600;@(E-374)=79
8035 GOSUB 9000
8040 GOSUB 8600;@(E-374)=65
8045 GOSUB 9000
8050 GOSUB 8600;@(E-374)=78
8055 GOSUB 9000
8060 GOSUB 8600;@(E-374)=73
8065 GOSUB 9000
8070 FOR Z=1TO 2000;NEXT Z;GOTO 2000
8500 FOR Z=27TO A;IF @(Z)>64IF @(Z)<91@(@(Z)+310)=@(@(Z)+310)+1
8510 NEXT Z;RETURN 
8600 D=0;FOR Z=375TO 400;IF @(Z)>D D=@(Z);E=Z
8610 NEXT Z;@(E)=0;RETURN 
9000 TV=E-310;PRINT "=",;TV=@(E-374);PRINT ;RETURN 
>RUN 
